﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using pwblog.BusinessObject;
using pwblog.Entities;
using pwblog.Common;

namespace pwblog.Web.Admin
{
    public partial class dangky : System.Web.UI.Page
    {
        protected AccountBo accountBo;
        protected void Page_Load(object sender, EventArgs e)
        {
            accountBo = new AccountBo();
            if (!HttpContext.Current.User.IsInRole("admin"))
            {
                Response.Redirect(@"\Web\Longin.aspx?ReturnUrl=\Web\Admin\Dangky.aspx");
            }
        }
        protected void Registration_Submit(object sender, EventArgs e)
        {
            Page.Validate();
            if (Page.IsValid)
            {
                Account newAccount = new Account();
                newAccount.UserName = tb_username.Text.Trim();

                System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
                byte[] pw_bytes = System.Text.Encoding.UTF8.GetBytes(tb_password.Text);
                pw_bytes = md5.ComputeHash(pw_bytes);
                newAccount.Password = BitConverter.ToString(pw_bytes);

                newAccount.Birthday = tb_ngaysinh.Text.Trim();

                newAccount.Address = tb_email.Text.Trim();

                if (cb_role_admin.Checked && cb_role_poster.Checked)
                    newAccount.Roles = "admin,creator";
                else if (cb_role_poster.Checked)
                    newAccount.Roles = "creator";
                else if (cb_role_admin.Checked)
                    newAccount.Roles = "admin";

                if (accountBo.InsertAccout(newAccount))
                {
                    MailAssistant.SetupSender("ducnh3@gmail.com", "Duc123456");
                    string[] to = new string[] { newAccount.Address };
                    string subject = "PWBlog chúc mừng bạn đăng ký tài khoản thành công";
                    System.Text.StringBuilder sbuilder = new System.Text.StringBuilder();
                    sbuilder.Append("PWBlog thân chào bạn,");
                    sbuilder.Append("<br/>");
                    sbuilder.Append("Chúc mừng bạn đã đăng ký tài khoản thành công. Thông tin về tài khoản của bạn:<br/>");
                    sbuilder.Append("<ul><li>username:" + newAccount.UserName + "</li><li>password:" + tb_password.Text + "</li></ul>");
                    sbuilder.Append("Hãy ghi nhớ những thông tin này để đăng nhập vào PWBlog tại <a href='" + ConvertRelativeUrlToAbsoluteUrl("~/Web/Login.aspx") + "'>đây</a> và post bài viết mới tại <a href='" + ConvertRelativeUrlToAbsoluteUrl("~/Web/Creator/PostArticle.aspx") + "'>đây</a><br/>");
                    sbuilder.Append("Chúng tôi mong chờ những chia sẻ thật hay, hữu ích từ phía bạn!<br/>");
                    sbuilder.Append("Thân chào bạn,<br/>");
                    sbuilder.Append("PWBlog.");
                    MailAssistant.SendMail(to, subject, sbuilder.ToString(), null);
                    Response.Redirect("ketquadangky.aspx?r=success");
                }
                else
                {
                    Response.Redirect("ketquadangky.aspx?r=fail");
                }
            }
            else { return; }
        }
        public string ConvertRelativeUrlToAbsoluteUrl(string relativeUrl)
        {

            if (Request.IsSecureConnection)

                return string.Format("https://{0}:{1}{2}", Request.Url.Host, Request.Url.Port, Page.ResolveUrl(relativeUrl));

            else

                return string.Format("http://{0}:{1}{2}", Request.Url.Host, Request.Url.Port, Page.ResolveUrl(relativeUrl));

        }
    }
}